home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / djgpp / src / binutils.252 / gas / vmsconf.sh < prev    next >
Encoding:
Linux/UNIX/POSIX Shell Script  |  1994-10-01  |  3.0 KB  |  95 lines

  1. #!/bin/sh
  2.  
  3. cat << 'EOF'
  4. $! Set the def dir to proper place for use in batch. Works for interactive to.
  5. $flnm = f$enviroment("PROCEDURE")     ! get current procedure name
  6. $set default 'f$parse(flnm,,,"DEVICE")''f$parse(flnm,,,"DIRECTORY")'
  7. $v = 'f$verify(0)'
  8. $!
  9. $!    Command file to build a GNU assembler on VMS
  10. $!
  11. $!    If you are using a version of GCC that supports global constants
  12. $!    you should remove the define="const=" from the gcc lines.
  13. $!
  14. $!    Caution:  Versions 1.38.1 and earlier had a bug in the handling of
  15. $!    some static constants. If you are using such a version of the
  16. $!    assembler, and you wish to compile without the "const=" hack,
  17. $!    you should first build this version *with* the "const="
  18. $!    definition, and then use that assembler to rebuild it without the
  19. $!    "const=" definition.  Failure to do this will result in an assembler
  20. $!    that will mung floating point constants.
  21. $!
  22. $!    Note: The version of gas shipped on the GCC VMS tapes has been patched
  23. $!    to fix the above mentioned bug.
  24. $!
  25. $    !The gcc-vms driver was modified to use `-1' quite some time ago,
  26. $    !so don't echo this text any more...
  27. $ !write sys$output "If this assembler is going to be used with GCC 1.n, you"
  28. $ !write sys$output "need to modify the driver to supply the -1 switch to gas."
  29. $ !write sys$output "This is required because of a small change in how global"
  30. $ !write sys$output "constant variables are handled.  Failure to include this"
  31. $ !write sys$output "will result in linker warning messages about mismatched
  32. $ !write sys$output "psect attributes."
  33. $!
  34. $ C_DEFS :="""VMS"""
  35. $! C_DEFS :="""VMS""","""const="""
  36. $ C_INCLUDES    = "/Include=([],[.config],[-.include],[-.include.aout])"
  37. $ C_FLAGS    = "/noVerbose/Debug" + c_includes
  38. $!
  39. $!
  40. $ on error then  goto bail
  41. $ if "''p1'" .eqs. "LINK" then goto Link
  42. $!
  43. $!  This helps gcc 1.nn find the aout/* files.
  44. $!
  45. $ aout_dev = f$parse(flnm,,,"DEVICE")
  46. $ tmp = aout_dev - ":"
  47. $if f$trnlnm(tmp).nes."" then aout_dev = f$trnlnm(tmp)
  48. $ aout_dir = aout_dev+f$parse(flnm,,,"DIRECTORY")' -
  49.     - "GAS]" + "INCLUDE.AOUT.]" - "]["
  50. $assign 'aout_dir' aout/tran=conc
  51. $ opcode_dir = aout_dev+f$parse(flnm,,,"DIRECTORY")' -
  52.     - "GAS]" + "INCLUDE.OPCODE.]" - "]["
  53. $assign 'opcode_dir' opcode/tran=conc
  54. $!
  55. $ set verify
  56. $!
  57. EOF
  58.  
  59. cfiles="`echo $* | sed -e 's/\.o/.c/g' -e 's!../\([^ /]*\)/\([^ /]*\.c\)![-.\1]\2!g'`"
  60.  
  61. for cfile in $cfiles ; do
  62.   case $cfile in
  63.     "[-."*)
  64.     base=`echo $cfile | sed -e 's/\[.*\]//' -e 's/\.c$//'`
  65.     echo "\$ gcc 'c_flags'/Define=('C_DEFS')/Object=[]$base.obj $cfile"
  66.     ;;
  67.     *)
  68.     echo "\$ gcc 'c_flags'/Define=('C_DEFS') $cfile"
  69.     ;;
  70.   esac
  71. done
  72.  
  73. cat << 'EOF'
  74. $link:
  75. $!'f$verify(0)'
  76. $ set verify=(Proc,noImag)
  77. $ link/noMap/Exec=gcc-as version.opt/Opt+sys$input:/Opt
  78. !
  79. !    Linker options file for GNU assembler
  80. !
  81. EOF
  82.  
  83. for obj in $* ; do
  84.   # Change "foo.o" into "foo.obj".
  85.   echo ${obj}bj,- | sed 's!.*/!!g'
  86. done
  87.  
  88. cat << 'EOF'
  89. gnu_cc:[000000]gcclib.olb/Lib,sys$library:vaxcrtl.olb/Lib
  90. ! Tell linker exactly what psect attributes we want -- match VAXCRTL.
  91. psect_attr=ENVIRON,long,pic,ovr,rel,gbl,noshr,noexe,rd,wrt
  92. $!
  93. $bail: exit $status + 0*f$verify(v)    !'f$verify(0)'
  94. EOF
  95.